home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / util / cli / wild.lha / wild.c < prev   
C/C++ Source or Header  |  1994-03-06  |  1KB  |  69 lines

  1. echo ; /*
  2. lc -Lcr -O -rr wild
  3. quit
  4. */
  5.  
  6. /*
  7.  * wild.c
  8.  *
  9.  * Wildstar-Flag-Switcher
  10.  *
  11.  * Dirk Farin
  12.  * Kapellenweg 15
  13.  * 72070 Tübingen
  14.  * farindk@trick.informatik.uni-stuttgart.de
  15.  */
  16.  
  17. #include <stdio.h>
  18. #include <stdlib.h>
  19. #include <string.h>
  20. #include <dos/dosextens.h>
  21.  
  22. struct DosLibrary *DOSBase;
  23.  
  24. char *version="$VER: wild 1.0 (6.3.94) "
  25.               "© Dirk Farin (farindk@trick.informatik.uni-stuttgart.de)";
  26.  
  27. void helpexit(char *prgname)
  28. {
  29.   printf("Usage: %s [on|off]\n",prgname);
  30.   exit(5);
  31. }
  32.  
  33. int main(int argc,char **argv)
  34. {
  35.   LONG *flagptr;
  36.   BOOL  flagstatus;
  37.   BOOL  toset;
  38.  
  39.   if (DOSBase->dl_lib.lib_Version < 37)
  40.   {
  41.     printf("Sorry, need at least DOS-Version 2.04\n");
  42.     exit(10);
  43.   }
  44.  
  45.   flagptr = &(((struct RootNode *)DOSBase->dl_Root)->rn_Flags);
  46.   flagstatus = ((*flagptr) & RNF_WILDSTAR) ? TRUE:FALSE;
  47.  
  48.   printf("Dirk Farin's wildstar-switcher\n"
  49.          "------------------------------\n");
  50.  
  51.   if (argc>2) helpexit(argv[0]);
  52.  
  53.   if (argc==1) toset = !flagstatus;
  54.   else
  55.   {
  56.          if (stricmp(argv[1],"on" ) == 0) toset=TRUE;
  57.     else if (stricmp(argv[1],"off") == 0) toset=FALSE;
  58.     else helpexit(argv[0]);
  59.   }
  60.  
  61.   printf("Switching wildstar %s!\n",toset ? "on" : "off" );
  62.  
  63.   if (toset) (*flagptr) |=  RNF_WILDSTAR;
  64.   else       (*flagptr) &= ~RNF_WILDSTAR;
  65.  
  66.   return 0;
  67. }
  68.  
  69.